package com.cl.short_video_java.config;

import com.google.code.kaptcha.impl.DefaultKaptcha;
import com.google.code.kaptcha.util.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Properties;

/**
 * @Author 付
 * @Date 2024-03-14 18:34
 * @Version 1.0
 * @description 验证码生成
 * @since 1.0
 */
@Configuration
public class CaptchConfig {
	@Bean
	public DefaultKaptcha producer() {
//		Properties properties = new Properties();
//		properties.put("kaptcha", "no");
//		properties.put("kaptcha.border","yes");
//		properties.put("kaptcha.border.color","gray");
//		properties.put("kaptcha.textproducer.font.color", "black");
//		properties.put("kaptcha.textproducer.char.space", "2");
//		properties.put("kaptcha.image.height", "30");
//		properties.put("kaptcha.image.width", "110");
//		properties.put("kaptcha.textproducer.font.size", "25");
//		Config config = new Config(properties);
//		DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
//		defaultKaptcha.setConfig(config);

		DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
		Properties properties = new Properties();
		properties.setProperty("kaptcha.border", "no");
		properties.setProperty("kaptcha.border.color", "105,179,90");
		properties.setProperty("kaptcha.textproducer.font.color", "black");
		properties.setProperty("kaptcha.image.width", "110");
		properties.setProperty("kaptcha.image.height", "40");
		properties.setProperty("kaptcha.textproducer.char.string", "23456789abcdefghkmnpqrstuvwxyzABCDEFGHKMNPRSTUVWXYZ");
		properties.setProperty("kaptcha.textproducer.font.size", "30");
		properties.setProperty("kaptcha.textproducer.char.space", "3");
		properties.setProperty("kaptcha.session.key", "code");
		properties.setProperty("kaptcha.textproducer.char.length", "4");
		properties.setProperty("kaptcha.textproducer.font.names", "宋体,楷体,微软雅黑");
		// 这里 是去掉 噪点颜色
		//properties.setProperty("kaptcha.noise.color", "255,96,0");
		// 这是 是图片样式配置 原生的有三种 水纹 、 鱼眼 、 阴影
		// 这里是 我们自己实现的一个 也就是 样式自定义
		properties.setProperty("kaptcha.obscurificator.impl", "com.cl.short_video_java.config.NoWaterRipple");
		// 配置使用原生的 无噪 实现类 NoNoise
		properties.setProperty("kaptcha.noise.impl", "com.google.code.kaptcha.impl.NoNoise");
		Config config = new Config(properties);
		defaultKaptcha.setConfig(config);

		return defaultKaptcha;
	}
}
